#ifndef HISTORIQUE_H
#define HISTORIQUE_H
#include "pile.h"
#include "QStack"

/*!
 * \file historique.h
 * \brief Gestion de la sauvegarde des saisies utilisateurs
 * \author Matthieu.H
 * \version 1.0
 * \date 18 juin 2012
 *
 */

/*! \class Historique
 * \brief classe gerant l'historique des saisies utilisateurs
 *
 */
class Historique
{
    QStack<QString>  ExpPrec;/*!< Pile contenant l'expression precedante */
    QStack<QString>  ExpSuiv;/*!< Pile contenant l'expression suivante */
public:

    /*! Constructeur
       *  \brief Historique
       *  Constructeur de la classe Historique
       */
    Historique();
    /*!
       *  \brief Sauvegarder
       *  Sauvegarde la saisie utilisateur
       *   \param S : Saisie Utilisateur
       */
    void Sauvegarder(QString S);

    /*!
       *  \brief PrecExp
       *  Retourne l'expression precedante
       */
    QStack<QString> PrecExp();

    /*!
       *  \brief SuivExp
       *  Retourne l'expression suivante
       */
    QStack<QString> SuivExp();
    QStack<QString> Exp(){return ExpPrec;}

    /*!
       *  \brief Clearhisto
       *  Vide l'historique
       */
    void Clearhisto(){ExpPrec.clear();}
    /*!
       *  \brief TailleSuiv
       *  Retourne la taille de l'expression suivante
       */
    int TailleSuiv(){return ExpSuiv.size();}

    /*!
       *  \brief TailleSuiv
       *  Retourne la taille de l'expression precedante
       */
    int TaillePrec(){return ExpPrec.size();}
};

#endif // HISTORIQUE_H
